package com.hundsun.cprs.yyt.service.trade.service;

import com.hundsun.cprs.yyt.service.trade.domain.*;

import java.util.List;

public interface TradeMatchService {
    
    /**
     * 匹配成功后，处理落库
     * @param tradeMatch
     */
    void updateAfterMatch(TradeMatch tradeMatch);
    
    /**
     * 撤销委托单
     * @param tradeEntrustList
     */
    void cancelEntrust(List<TradeEntrust> tradeEntrustList);
    
    
    /**
     * 回撤委托单(暂仅针对挂售单)
     * @param TradeRollbackFlow
     * @param tradeEntrust
     */
    void rollbackEntrust(TradeRollbackFlow tradeRollbackFlow,TradeEntrust tradeEntrust);
    
    /**
     * 更新撤单记录的状态
     * @param TradeRollbackFlow
     */
    void updateRollbackFlowStatus(TradeRollbackFlow tradeRollbackFlow);

    /**
     * 获取买方的对手方匹配详情
     * @param entrustId
     *
     * */
    List<TradeMatchDetail> selectCounterpartyTradeMatchDetailList(Long entrustId,String entrustBs);

    /**
     * 获取买方的对手方匹配详情（后端展示使用）
     * @param entrustId
     *
     * */
    List<TradeMatchDetail> selectCounterpartyTradeMatchDetailListforView(Long entrustId,String entrustBs);

    /**
     * 撤单成功后,更新撤单记录及相关委托单信息
     * @param cancelFlow
     * @param tradeEntrust
     */
    void updateCancelFlowAfterSuccess(TradeCancelFlow cancelFlow, TradeEntrust tradeEntrust);

    /**
     * 更新撤单记录的状态
     * @param cancelFlow
     */
    void updateCancelFlowStatus(TradeCancelFlow cancelFlow);
}
